home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Original Shareware 1.1
/
The Original Shareware (WeMake CDs)(Volume 1.1)(CDs, Inc)(1993).iso
/
6
/
c_math.zip
/
HYPOT.C
< prev
next >
Wrap
Text File
|
1983-07-02
|
482b
|
42 lines
/*
* sqrt(a^2 + b^2)
* (but carefully)
*/
double sqrt();
double
hypot(a,b)
double a,b;
{
double t;
if(a<0) a = -a;
if(b<0) b = -b;
if(a > b) {
t = a;
a = b;
b = t;
}
if(b==0) return(0.);
a /= b;
/*
* pathological overflow possible
* in the next line.
*/
return(b*sqrt(1. + a*a));
}
struct complex
{
double r;
double i;
};
double
cabs(arg)
struct complex arg;
{
double hypot();
return(hypot(arg.r, arg.i));
}